home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / WarpQuake / Src / d_varsa.s < prev    next >
Text File  |  2000-05-22  |  5KB  |  214 lines

  1. /*
  2. Copyright (C) 1996-1997 Id Software, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  12.  
  13. See the GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  
  19. */
  20. //
  21. // d_varsa.s
  22. //
  23.  
  24. #include "asm_i386.h"
  25. #include "quakeasm.h"
  26. #include "asm_draw.h"
  27. #include "d_ifacea.h"
  28.  
  29. #if    id386
  30.  
  31.     .data
  32.  
  33. //-------------------------------------------------------
  34. // global refresh variables
  35. //-------------------------------------------------------
  36.  
  37. // FIXME: put all refresh variables into one contiguous block. Make into one
  38. // big structure, like cl or sv?
  39.  
  40.     .align    4
  41. .globl    C(d_sdivzstepu)
  42. .globl    C(d_tdivzstepu)
  43. .globl    C(d_zistepu)
  44. .globl    C(d_sdivzstepv)
  45. .globl    C(d_tdivzstepv)
  46. .globl    C(d_zistepv)
  47. .globl    C(d_sdivzorigin)
  48. .globl    C(d_tdivzorigin)
  49. .globl    C(d_ziorigin)
  50. C(d_sdivzstepu):    .single    0
  51. C(d_tdivzstepu):    .single    0
  52. C(d_zistepu):        .single    0
  53. C(d_sdivzstepv):    .single    0
  54. C(d_tdivzstepv):    .single    0
  55. C(d_zistepv):        .single    0
  56. C(d_sdivzorigin):    .single    0
  57. C(d_tdivzorigin):    .single    0
  58. C(d_ziorigin):        .single    0
  59.  
  60. .globl    C(sadjust)
  61. .globl    C(tadjust)
  62. .globl    C(bbextents)
  63. .globl    C(bbextentt)
  64. C(sadjust):            .long    0
  65. C(tadjust):            .long    0
  66. C(bbextents):        .long    0
  67. C(bbextentt):        .long    0
  68.  
  69. .globl    C(cacheblock)
  70. .globl    C(d_viewbuffer)
  71. .globl    C(cachewidth)
  72. .globl    C(d_pzbuffer)
  73. .globl    C(d_zrowbytes)
  74. .globl    C(d_zwidth)
  75. C(cacheblock):        .long    0
  76. C(cachewidth):        .long    0
  77. C(d_viewbuffer):    .long    0
  78. C(d_pzbuffer):        .long    0
  79. C(d_zrowbytes):        .long    0
  80. C(d_zwidth):        .long    0
  81.  
  82.  
  83. //-------------------------------------------------------
  84. // ASM-only variables
  85. //-------------------------------------------------------
  86. .globl    izi
  87. izi:            .long    0
  88.  
  89. .globl    pbase, s, t, sfracf, tfracf, snext, tnext
  90. .globl    spancountminus1, zi16stepu, sdivz16stepu, tdivz16stepu
  91. .globl    zi8stepu, sdivz8stepu, tdivz8stepu, pz
  92. s:                .long    0
  93. t:                .long    0
  94. snext:            .long    0
  95. tnext:            .long    0
  96. sfracf:            .long    0
  97. tfracf:            .long    0
  98. pbase:            .long    0
  99. zi8stepu:        .long    0
  100. sdivz8stepu:    .long    0
  101. tdivz8stepu:    .long    0
  102. zi16stepu:        .long    0
  103. sdivz16stepu:    .long    0
  104. tdivz16stepu:    .long    0
  105. spancountminus1: .long    0
  106. pz:                .long    0
  107.  
  108. .globl    izistep
  109. izistep:                .long    0
  110.  
  111. //-------------------------------------------------------
  112. // local variables for d_draw16.s
  113. //-------------------------------------------------------
  114.  
  115. .globl    reciprocal_table_16, entryvec_table_16
  116. // 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13,
  117. // 1/14, and 1/15 in 0.32 form
  118. reciprocal_table_16:    .long    0x40000000, 0x2aaaaaaa, 0x20000000
  119.                         .long    0x19999999, 0x15555555, 0x12492492
  120.                         .long    0x10000000, 0xe38e38e, 0xccccccc, 0xba2e8ba
  121.                         .long    0xaaaaaaa, 0x9d89d89, 0x9249249, 0x8888888
  122.  
  123. #ifndef NeXT
  124.     .extern Entry2_16
  125.     .extern Entry3_16
  126.     .extern Entry4_16
  127.     .extern Entry5_16
  128.     .extern Entry6_16
  129.     .extern Entry7_16
  130.     .extern Entry8_16
  131.     .extern Entry9_16
  132.     .extern Entry10_16
  133.     .extern Entry11_16
  134.     .extern Entry12_16
  135.     .extern Entry13_16
  136.     .extern Entry14_16
  137.     .extern Entry15_16
  138.     .extern Entry16_16
  139. #endif
  140.  
  141. entryvec_table_16:    .long    0, Entry2_16, Entry3_16, Entry4_16
  142.                     .long    Entry5_16, Entry6_16, Entry7_16, Entry8_16
  143.                     .long    Entry9_16, Entry10_16, Entry11_16, Entry12_16
  144.                     .long    Entry13_16, Entry14_16, Entry15_16, Entry16_16
  145.  
  146. //-------------------------------------------------------
  147. // local variables for d_parta.s
  148. //-------------------------------------------------------
  149. .globl    DP_Count, DP_u, DP_v, DP_32768, DP_Color, DP_Pix, DP_EntryTable
  150. DP_Count:        .long    0
  151. DP_u:            .long    0
  152. DP_v:            .long    0
  153. DP_32768:        .single    32768.0
  154. DP_Color:        .long    0
  155. DP_Pix:            .long    0
  156.  
  157.  
  158. #ifndef NeXT
  159.     .extern DP_1x1
  160.     .extern DP_2x2
  161.     .extern DP_3x3
  162.     .extern DP_4x4
  163. #endif
  164.  
  165. DP_EntryTable:    .long    DP_1x1, DP_2x2, DP_3x3, DP_4x4
  166.  
  167. //
  168. // advancetable is 8 bytes, but points to the middle of that range so negative
  169. // offsets will work
  170. //
  171. .globl    advancetable, sstep, tstep, pspantemp, counttemp, jumptemp
  172. advancetable:    .long    0, 0
  173. sstep:            .long    0
  174. tstep:            .long    0
  175.  
  176. pspantemp:        .long    0
  177. counttemp:        .long    0
  178. jumptemp:        .long    0
  179.  
  180. // 1/2, 1/3, 1/4, 1/5, 1/6, and 1/7 in 0.32 form
  181. .globl    reciprocal_table, entryvec_table
  182. reciprocal_table:    .long    0x40000000, 0x2aaaaaaa, 0x20000000
  183.                     .long    0x19999999, 0x15555555, 0x12492492
  184.  
  185. #ifndef NeXT
  186.     .extern Entry2_8
  187.     .extern Entry3_8
  188.     .extern Entry4_8
  189.     .extern Entry5_8
  190.     .extern Entry6_8
  191.     .extern Entry7_8
  192.     .extern Entry8_8
  193. #endif
  194.  
  195. entryvec_table:    .long    0, Entry2_8, Entry3_8, Entry4_8
  196.                 .long    Entry5_8, Entry6_8, Entry7_8, Entry8_8
  197.  
  198. #ifndef NeXT
  199.     .extern Spr8Entry2_8
  200.     .extern Spr8Entry3_8
  201.     .extern Spr8Entry4_8
  202.     .extern Spr8Entry5_8
  203.     .extern Spr8Entry6_8
  204.     .extern Spr8Entry7_8
  205.     .extern Spr8Entry8_8
  206. #endif
  207.     
  208. .globl spr8entryvec_table
  209. spr8entryvec_table:    .long    0, Spr8Entry2_8, Spr8Entry3_8, Spr8Entry4_8
  210.                     .long    Spr8Entry5_8, Spr8Entry6_8, Spr8Entry7_8, Spr8Entry8_8
  211.  
  212. #endif    // id386
  213.  
  214.